package com.itheima.util;

import io.jsonwebtoken.Jwt;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.HashMap;
import java.util.Map;

//JWT的生成和解析
public class JwtUtil {
    // 创建token
    public static String createToken(Map claims) {
        return Jwts.builder()
                .setClaims(claims) //设置响应数据体
                .signWith(SignatureAlgorithm.HS256, ConstantUtil.JWT_SECRET) //设置加密方法和加密盐
                .compact();
    }

    // 解析token
    public static Map parseToken(String token) {
        return Jwts.parser().setSigningKey(ConstantUtil.JWT_SECRET)
                .parseClaimsJws(token)
                .getBody();
    }

    public static void main(String[] args) {
        // 制作令牌
    /*    Map<String,Object> map = new HashMap<>();
        map.put("id", 1001);
        map.put("username", "jack");
        String token = JwtUtil.createToken(map);
        System.err.println(token);*/

        // 解析令牌
        Map map = JwtUtil.parseToken("eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MTAwMSwixXNlcm5hbWUiOiJqYWNrIn0.iWPIs5xDRCPJDoljVi_YNeliJjZ6cKsN9QYsC0GiFEk");
        System.out.println(map);
    }
}
